/*
Problem Description
　　细心的同事发现，小Ｑ最近喜欢乘电梯上上下下，究其原因，也许只有小Ｑ自己知道：在电梯里经常可以遇到他心中的女神HR。
　　电梯其实是个很暧昧的地方，只有在电梯里，小Q才有勇气如此近距离接近女神，虽然觉得有点不自在，但次数多了，女神也习惯了小Ｑ的存在，甚至熟悉到仿佛不说上句话自己也都觉得不合适了。可是，他们的谈话也仅仅限于今天天气不错啊或是你吃了吗之类的，往往在对方微笑点头后就再次陷入难堪的沉默之中。  于是，小Ｑ便在陪伴女神的同时，也关注着电梯中显示的楼层数字，并且他注意到电梯每向上运行一层需要６秒钟，向下运行一层需要4秒钟，每开门一次需要５秒（如果有人到达才开门），并且每下一个人需要加１秒。
　　特别指出，电梯最开始在０层，并且最后必须再回到０层才算一趟任务结束。假设在开始的时候已知电梯内的每个人要去的楼层，你能计算出完成本趟任务需要的总时间吗?
　　这是个很简单的问题，要知道，小Q已经修炼到快速心算出结果的境界，现在你来编程试试吧！
Input
输入首先包含一个正整数C，表示有C组测试用例。
接下来C行每行包含一组数据，每组数据首先是一个正整数N，表示本次乘坐电梯的人数，然后是N个正整数Ai，分别表示大家要去的楼层。

[Technical Specification]
C<=100
N<=15
Ai<=100
Output
请计算并输出完成一趟任务需要的时间，每组数据输出占一行。
Sample Input
2
4 2 4 3 2 
3 10 10 10
Sample Output
59
108
 */
package com.yuan.algorithms.practice201506;

import java.util.Arrays;
import java.util.Scanner;

public class 电梯运行时间 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int t = sc.nextInt();
			while (--t >= 0) {
				int n = sc.nextInt();
				int[] arr = new int[n];
				for (int i = 0; i < arr.length; i++) {
					arr[i] = sc.nextInt();
				}
				Arrays.sort(arr);
				int time = 0;
				int cur = 0;
				for (int i = 0; i < arr.length; i++) {
					time += 6 * (arr[i] - cur) + 5;
					cur = arr[i];
					for (int j = i; j < n && arr[i] == arr[j]; j++) {
						time++;
						i = j;
					}
				}
				time += arr[n - 1] * 4;
				System.out.println(time);
			}
		}

	}

}
